home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / tspi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  40.8 KB  |  1,568 lines

  1. /*++ BUILD Version: 0000    // Increment this if a change has global effects
  2.  
  3. The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  4. granted  a royalty free worldwide, unlimited license to make copies, and use
  5. the   API/SPI  for  making  applications/drivers  that  interface  with  the
  6. specification provided that this paragraph and the Intel/Microsoft copyright
  7. statement is maintained as is in the text and source code files.
  8.  
  9. Copyright (c) 1992-1996  Microsoft Corporation
  10. Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  11.  
  12. Module Name:
  13.  
  14.     tspi.h
  15.  
  16. Notes:
  17.  
  18.     Additions to the Telephony Service Provider Interface (TSPI) since
  19.     version 1.0 are noted by version number (i.e. "TSPI v1.4").
  20.  
  21. --*/
  22.  
  23. #ifndef TSPI_H
  24. #define TSPI_H
  25. #pragma option push -b
  26.  
  27.  
  28.  
  29.  
  30. #include <windows.h>
  31.  
  32.  
  33.  
  34. #include "tapi.h"
  35.  
  36.  
  37.  
  38. #if WIN32
  39. #if TAPI_CURRENT_VERSION < 0x00020000
  40. #error Building a 32bit 1.3 or 1.4 service provider is not supported.
  41. #endif
  42. #endif
  43.  
  44.  
  45. // tspi.h  is  only  of  use  in  conjunction  with tapi.h.  Very few types are
  46. // defined  in  tspi.h.   Most  types of procedure formal parameters are simply
  47. // passed through from corresponding procedures in tapi.h.  A working knowledge
  48. // of the TAPI interface is required for an understanding of this interface.
  49.  
  50. #ifdef __BORLANDC__
  51. #  include <pshpack8.h>
  52. #endif
  53.  
  54. #ifdef __cplusplus
  55. extern "C" {            /* Assume C declarations for C++ */
  56. #endif  /* __cplusplus */
  57.  
  58. #ifndef DECLARE_OPAQUE32
  59. #define DECLARE_OPAQUE32(name)  struct name##__ { int unused; }; \
  60.                 typedef const struct name##__ FAR* name
  61. #endif  // DECLARE_OPAQUE32
  62.  
  63. #ifndef TSPIAPI
  64.  
  65. #define TSPIAPI PASCAL
  66.  
  67. #endif
  68.  
  69. DECLARE_OPAQUE32(HDRVCALL);
  70. DECLARE_OPAQUE32(HDRVLINE);
  71. DECLARE_OPAQUE32(HDRVPHONE);
  72. DECLARE_OPAQUE32(HDRVDIALOGINSTANCE);
  73.  
  74. typedef HDRVCALL FAR * LPHDRVCALL;
  75. typedef HDRVLINE FAR * LPHDRVLINE;
  76. typedef HDRVPHONE FAR * LPHDRVPHONE;
  77. typedef HDRVDIALOGINSTANCE FAR * LPHDRVDIALOGINSTANCE;
  78.  
  79. DECLARE_OPAQUE32(HTAPICALL);
  80. DECLARE_OPAQUE32(HTAPILINE);
  81. DECLARE_OPAQUE32(HTAPIPHONE);
  82. DECLARE_OPAQUE32(HTAPIDIALOGINSTANCE);
  83.  
  84. typedef HTAPICALL FAR * LPHTAPICALL;
  85. typedef HTAPILINE FAR * LPHTAPILINE;
  86. typedef HTAPIPHONE FAR * LPHTAPIPHONE;
  87. typedef HTAPIDIALOGINSTANCE FAR * LPHTAPIDIALOGINSTANCE;
  88.  
  89.  
  90. DECLARE_OPAQUE32(HPROVIDER);
  91. typedef HPROVIDER FAR * LPHPROVIDER;
  92.  
  93. typedef DWORD DRV_REQUESTID;
  94.  
  95. typedef void (CALLBACK * ASYNC_COMPLETION)(
  96.     DRV_REQUESTID       dwRequestID,
  97.     LONG                lResult
  98.     );
  99.  
  100. typedef void (CALLBACK * LINEEVENT)(
  101.     HTAPILINE           htLine,
  102.     HTAPICALL           htCall,
  103.     DWORD               dwMsg,
  104.     DWORD               dwParam1,
  105.     DWORD               dwParam2,
  106.     DWORD               dwParam3
  107.     );
  108.  
  109. typedef void (CALLBACK * PHONEEVENT)(
  110.     HTAPIPHONE          htPhone,
  111.     DWORD               dwMsg,
  112.     DWORD               dwParam1,
  113.     DWORD               dwParam2,
  114.     DWORD               dwParam3
  115.     );
  116.  
  117. typedef LONG (CALLBACK * TUISPIDLLCALLBACK)(
  118.     DWORD               dwObjectID,
  119.     DWORD               dwObjectType,
  120.     LPVOID              lpParams,
  121.     DWORD               dwSize
  122.     );
  123.  
  124. #if TAPI_CURRENT_VERSION >= 0x00020000
  125. typedef struct tuispicreatedialoginstanceparams_tag
  126. {
  127.     DRV_REQUESTID           dwRequestID;
  128.  
  129.     HDRVDIALOGINSTANCE      hdDlgInst;
  130.  
  131.     HTAPIDIALOGINSTANCE     htDlgInst;
  132.  
  133.     LPCWSTR                 lpszUIDLLName;
  134.  
  135.     LPVOID                  lpParams;
  136.  
  137.     DWORD                   dwSize;
  138.  
  139. } TUISPICREATEDIALOGINSTANCEPARAMS, *LPTUISPICREATEDIALOGINSTANCEPARAMS;
  140. #endif
  141.  
  142.  
  143. #define TSPI_MESSAGE_BASE 500
  144.     // The lowest-numbered TSPI-specific message ID number
  145.  
  146. #define LINE_NEWCALL                            ((long) TSPI_MESSAGE_BASE + 0)
  147. #define LINE_CALLDEVSPECIFIC                    ((long) TSPI_MESSAGE_BASE + 1)
  148. #define LINE_CALLDEVSPECIFICFEATURE             ((long) TSPI_MESSAGE_BASE + 2)
  149. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  150. #define LINE_CREATEDIALOGINSTANCE               ((long) TSPI_MESSAGE_BASE + 3)
  151.                                                                 // TSPI v2.0
  152. #define LINE_SENDDIALOGINSTANCEDATA             ((long) TSPI_MESSAGE_BASE + 4)
  153.                                                                 // TSPI v2.0
  154. #endif
  155.  
  156.  
  157. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  158. #define LINETSPIOPTION_NONREENTRANT             0x00000001      // TSPI v2.0
  159. #endif
  160.  
  161.  
  162. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  163. #define TUISPIDLL_OBJECT_LINEID                 1L              // TSPI v2.0
  164. #define TUISPIDLL_OBJECT_PHONEID                2L              // TSPI v2.0
  165. #define TUISPIDLL_OBJECT_PROVIDERID             3L              // TSPI v2.0
  166. #define TUISPIDLL_OBJECT_DIALOGINSTANCE         4L              // TSPI v2.0
  167. #endif
  168.  
  169.  
  170. //
  171. // The following function prototypes pertain
  172. // to a service provider's core module
  173. //
  174.  
  175.  
  176.  
  177. LONG
  178. TSPIAPI
  179. TSPI_lineAccept(
  180.     DRV_REQUESTID       dwRequestID,
  181.     HDRVCALL            hdCall,
  182.     LPCSTR              lpsUserUserInfo,
  183.     DWORD               dwSize
  184.     );
  185.  
  186. LONG
  187. TSPIAPI
  188. TSPI_lineAddToConference(
  189.     DRV_REQUESTID       dwRequestID,
  190.     HDRVCALL            hdConfCall,
  191.     HDRVCALL            hdConsultCall
  192.     );
  193.  
  194. LONG
  195. TSPIAPI
  196. TSPI_lineAnswer(
  197.     DRV_REQUESTID       dwRequestID,
  198.     HDRVCALL            hdCall,
  199.     LPCSTR              lpsUserUserInfo,
  200.     DWORD               dwSize
  201.     );
  202.  
  203. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  204. LONG
  205. TSPIAPI
  206. TSPI_lineBlindTransfer(
  207.     DRV_REQUESTID       dwRequestID,
  208.     HDRVCALL            hdCall,
  209.     LPCWSTR             lpszDestAddress,
  210.     DWORD               dwCountryCode);
  211. #else
  212. LONG
  213. TSPIAPI
  214. TSPI_lineBlindTransfer(
  215.     DRV_REQUESTID       dwRequestID,
  216.     HDRVCALL            hdCall,
  217.     LPCSTR              lpszDestAddress,
  218.     DWORD               dwCountryCode);
  219. #endif
  220.  
  221. LONG
  222. TSPIAPI
  223. TSPI_lineClose(
  224.     HDRVLINE            hdLine
  225.     );
  226.  
  227. LONG
  228. TSPIAPI
  229. TSPI_lineCloseCall(
  230.     HDRVCALL            hdCall
  231.     );
  232.  
  233. LONG
  234. TSPIAPI
  235. TSPI_lineCompleteCall(
  236.     DRV_REQUESTID       dwRequestID,
  237.     HDRVCALL            hdCall,
  238.     LPDWORD             lpdwCompletionID,
  239.     DWORD               dwCompletionMode,
  240.     DWORD               dwMessageID
  241.     );
  242.  
  243. LONG
  244. TSPIAPI
  245. TSPI_lineCompleteTransfer(
  246.     DRV_REQUESTID       dwRequestID,
  247.     HDRVCALL            hdCall,
  248.     HDRVCALL            hdConsultCall,
  249.     HTAPICALL           htConfCall,
  250.     LPHDRVCALL          lphdConfCall,
  251.     DWORD               dwTransferMode
  252.     );
  253.  
  254. LONG
  255. TSPIAPI
  256. TSPI_lineConditionalMediaDetection(
  257.     HDRVLINE            hdLine,
  258.     DWORD               dwMediaModes,
  259.     LPLINECALLPARAMS    const lpCallParams
  260.     );
  261.  
  262. LONG
  263. TSPIAPI
  264. TSPI_lineDevSpecific(
  265.     DRV_REQUESTID       dwRequestID,
  266.     HDRVLINE            hdLine,
  267.     DWORD               dwAddressID,
  268.     HDRVCALL            hdCall,
  269.     LPVOID              lpParams,
  270.     DWORD               dwSize
  271.     );
  272.  
  273. LONG
  274. TSPIAPI
  275. TSPI_lineDevSpecificFeature(
  276.     DRV_REQUESTID       dwRequestID,
  277.     HDRVLINE            hdLine,
  278.     DWORD               dwFeature,
  279.     LPVOID              lpParams,
  280.     DWORD               dwSize
  281.     );
  282.  
  283. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  284. LONG
  285. TSPIAPI
  286. TSPI_lineDial(
  287.     DRV_REQUESTID       dwRequestID,
  288.     HDRVCALL            hdCall,
  289.     LPCWSTR             lpszDestAddress,
  290.     DWORD               dwCountryCode
  291.     );
  292. #else
  293. LONG
  294. TSPIAPI
  295. TSPI_lineDial(
  296.     DRV_REQUESTID       dwRequestID,
  297.     HDRVCALL            hdCall,
  298.     LPCSTR              lpszDestAddress,
  299.     DWORD               dwCountryCode
  300.     );
  301. #endif
  302.  
  303. LONG
  304. TSPIAPI
  305. TSPI_lineDrop(
  306.     DRV_REQUESTID       dwRequestID,
  307.     HDRVCALL            hdCall,
  308.     LPCSTR              lpsUserUserInfo,
  309.     DWORD               dwSize
  310.     );
  311.  
  312. LONG
  313. TSPIAPI
  314. TSPI_lineDropOnClose(                                           // TSPI v1.4
  315.     HDRVCALL            hdCall
  316.     );
  317.  
  318. LONG
  319. TSPIAPI
  320. TSPI_lineDropNoOwner(                                           // TSPI v1.4
  321.     HDRVCALL            hdCall
  322.     );
  323.  
  324. LONG
  325. TSPIAPI
  326. TSPI_lineForward(
  327.     DRV_REQUESTID       dwRequestID,
  328.     HDRVLINE            hdLine,
  329.     DWORD               bAllAddresses,
  330.     DWORD               dwAddressID,
  331.     LPLINEFORWARDLIST   const lpForwardList,
  332.     DWORD               dwNumRingsNoAnswer,
  333.     HTAPICALL           htConsultCall,
  334.     LPHDRVCALL          lphdConsultCall,
  335.     LPLINECALLPARAMS    const lpCallParams
  336.     );
  337.  
  338. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  339. LONG
  340. TSPIAPI
  341. TSPI_lineGatherDigits(
  342.     HDRVCALL            hdCall,
  343.     DWORD               dwEndToEndID,
  344.     DWORD               dwDigitModes,
  345.     LPWSTR              lpsDigits,
  346.     DWORD               dwNumDigits,
  347.     LPCWSTR             lpszTerminationDigits,
  348.     DWORD               dwFirstDigitTimeout,
  349.     DWORD               dwInterDigitTimeout
  350.     );
  351. #else
  352. LONG
  353. TSPIAPI
  354. TSPI_lineGatherDigits(
  355.     HDRVCALL            hdCall,
  356.     DWORD               dwEndToEndID,
  357.     DWORD               dwDigitModes,
  358.     LPSTR               lpsDigits,
  359.     DWORD               dwNumDigits,
  360.     LPCSTR              lpszTerminationDigits,
  361.     DWORD               dwFirstDigitTimeout,
  362.     DWORD               dwInterDigitTimeout
  363.     );
  364. #endif
  365.  
  366. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  367. LONG
  368. TSPIAPI
  369. TSPI_lineGenerateDigits(
  370.     HDRVCALL            hdCall,
  371.     DWORD               dwEndToEndID,
  372.     DWORD               dwDigitMode,
  373.     LPCWSTR             lpszDigits,
  374.     DWORD               dwDuration
  375.     );
  376. #else
  377. LONG
  378. TSPIAPI
  379. TSPI_lineGenerateDigits(
  380.     HDRVCALL            hdCall,
  381.     DWORD               dwEndToEndID,
  382.     DWORD               dwDigitMode,
  383.     LPCSTR              lpszDigits,
  384.     DWORD               dwDuration
  385.     );
  386. #endif
  387.  
  388. LONG
  389. TSPIAPI
  390. TSPI_lineGenerateTone(
  391.     HDRVCALL            hdCall,
  392.     DWORD               dwEndToEndID,
  393.     DWORD               dwToneMode,
  394.     DWORD               dwDuration,
  395.     DWORD               dwNumTones,
  396.     LPLINEGENERATETONE  const lpTones
  397.     );
  398.  
  399. LONG
  400. TSPIAPI
  401. TSPI_lineGetAddressCaps(
  402.     DWORD               dwDeviceID,
  403.     DWORD               dwAddressID,
  404.     DWORD               dwTSPIVersion,
  405.     DWORD               dwExtVersion,
  406.     LPLINEADDRESSCAPS   lpAddressCaps
  407.     );
  408.  
  409. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  410. LONG
  411. TSPIAPI
  412. TSPI_lineGetAddressID(
  413.     HDRVLINE            hdLine,
  414.     LPDWORD             lpdwAddressID,
  415.     DWORD               dwAddressMode,
  416.     LPCWSTR             lpsAddress,
  417.     DWORD               dwSize
  418.     );
  419. #else
  420. LONG
  421. TSPIAPI
  422. TSPI_lineGetAddressID(
  423.     HDRVLINE            hdLine,
  424.     LPDWORD             lpdwAddressID,
  425.     DWORD               dwAddressMode,
  426.     LPCSTR              lpsAddress,
  427.     DWORD               dwSize
  428.     );
  429. #endif
  430.  
  431. LONG
  432. TSPIAPI
  433. TSPI_lineGetAddressStatus(
  434.     HDRVLINE            hdLine,
  435.     DWORD               dwAddressID,
  436.     LPLINEADDRESSSTATUS lpAddressStatus
  437.     );
  438.  
  439. LONG
  440. TSPIAPI
  441. TSPI_lineGetCallAddressID(
  442.     HDRVCALL            hdCall,
  443.     LPDWORD             lpdwAddressID
  444.     );
  445.  
  446. LONG
  447. TSPIAPI
  448. TSPI_lineGetCallInfo(
  449.     HDRVCALL            hdCall,
  450.     LPLINECALLINFO      lpCallInfo
  451.     );
  452.  
  453. LONG
  454. TSPIAPI
  455. TSPI_lineGetCallStatus(
  456.     HDRVCALL            hdCall,
  457.     LPLINECALLSTATUS    lpCallStatus
  458.     );
  459.  
  460. LONG
  461. TSPIAPI
  462. TSPI_lineGetDevCaps(
  463.     DWORD               dwDeviceID,
  464.     DWORD               dwTSPIVersion,
  465.     DWORD               dwExtVersion,
  466.     LPLINEDEVCAPS       lpLineDevCaps
  467.     );
  468.  
  469. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  470. LONG
  471. TSPIAPI
  472. TSPI_lineGetDevConfig(
  473.     DWORD               dwDeviceID,
  474.     LPVARSTRING         lpDeviceConfig,
  475.     LPCWSTR             lpszDeviceClass
  476.     );
  477. #else
  478. LONG
  479. TSPIAPI
  480. TSPI_lineGetDevConfig(
  481.     DWORD               dwDeviceID,
  482.     LPVARSTRING         lpDeviceConfig,
  483.     LPCSTR              lpszDeviceClass
  484.     );
  485. #endif
  486.  
  487. LONG
  488. TSPIAPI
  489. TSPI_lineGetExtensionID(
  490.     DWORD               dwDeviceID,
  491.     DWORD               dwTSPIVersion,
  492.     LPLINEEXTENSIONID   lpExtensionID
  493.     );
  494.  
  495. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  496. LONG
  497. TSPIAPI
  498. TSPI_lineGetIcon(
  499.     DWORD               dwDeviceID,
  500.     LPCWSTR             lpszDeviceClass,
  501.     LPHICON             lphIcon
  502.     );
  503. #else
  504. LONG
  505. TSPIAPI
  506. TSPI_lineGetIcon(
  507.     DWORD               dwDeviceID,
  508.     LPCSTR              lpszDeviceClass,
  509.     LPHICON             lphIcon
  510.     );
  511. #endif
  512.  
  513. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  514. LONG
  515. TSPIAPI
  516. TSPI_lineGetID(
  517.     HDRVLINE            hdLine,
  518.     DWORD               dwAddressID,
  519.     HDRVCALL            hdCall,
  520.     DWORD               dwSelect,
  521.     LPVARSTRING         lpDeviceID,
  522.     LPCWSTR             lpszDeviceClass,
  523.     HANDLE              hTargetProcess                          // TSPI v2.0
  524.     );
  525. #else
  526. LONG
  527. TSPIAPI
  528. TSPI_lineGetID(
  529.     HDRVLINE            hdLine,
  530.     DWORD               dwAddressID,
  531.     HDRVCALL            hdCall,
  532.     DWORD               dwSelect,
  533.     LPVARSTRING         lpDeviceID,
  534.     LPCSTR              lpszDeviceClass
  535.     );
  536. #endif
  537.  
  538.  
  539. LONG
  540. TSPIAPI
  541. TSPI_lineGetLineDevStatus(
  542.     HDRVLINE            hdLine,
  543.     LPLINEDEVSTATUS     lpLineDevStatus
  544.     );
  545.  
  546. LONG
  547. TSPIAPI
  548. TSPI_lineGetNumAddressIDs(
  549.     HDRVLINE            hdLine,
  550.     LPDWORD             lpdwNumAddressIDs
  551.     );
  552.  
  553. LONG
  554. TSPIAPI
  555. TSPI_lineHold(
  556.     DRV_REQUESTID       dwRequestID,
  557.     HDRVCALL            hdCall
  558.     );
  559.  
  560. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  561. LONG
  562. TSPIAPI
  563. TSPI_lineMakeCall(
  564.     DRV_REQUESTID       dwRequestID,
  565.     HDRVLINE            hdLine,
  566.     HTAPICALL           htCall,
  567.     LPHDRVCALL          lphdCall,
  568.     LPCWSTR             lpszDestAddress,
  569.     DWORD               dwCountryCode,
  570.     LPLINECALLPARAMS    const lpCallParams
  571.     );
  572. #else
  573. LONG
  574. TSPIAPI
  575. TSPI_lineMakeCall(
  576.     DRV_REQUESTID       dwRequestID,
  577.     HDRVLINE            hdLine,
  578.     HTAPICALL           htCall,
  579.     LPHDRVCALL          lphdCall,
  580.     LPCSTR              lpszDestAddress,
  581.     DWORD               dwCountryCode,
  582.     LPLINECALLPARAMS    const lpCallParams
  583.     );
  584. #endif
  585.  
  586. LONG
  587. TSPIAPI
  588. TSPI_lineMonitorDigits(
  589.     HDRVCALL            hdCall,
  590.     DWORD               dwDigitModes
  591.     );
  592.  
  593. LONG
  594. TSPIAPI
  595. TSPI_lineMonitorMedia(
  596.     HDRVCALL            hdCall,
  597.     DWORD               dwMediaModes
  598.     );
  599.  
  600. LONG
  601. TSPIAPI
  602. TSPI_lineMonitorTones(
  603.     HDRVCALL            hdCall,
  604.     DWORD               dwToneListID,
  605.     LPLINEMONITORTONE   const lpToneList,
  606.     DWORD               dwNumEntries
  607.     );
  608.  
  609. LONG
  610. TSPIAPI
  611. TSPI_lineNegotiateExtVersion(
  612.     DWORD               dwDeviceID,
  613.     DWORD               dwTSPIVersion,
  614.     DWORD               dwLowVersion,
  615.     DWORD               dwHighVersion,
  616.     LPDWORD             lpdwExtVersion
  617.     );
  618.  
  619. LONG
  620. TSPIAPI
  621. TSPI_lineNegotiateTSPIVersion(
  622.     DWORD               dwDeviceID,
  623.     DWORD               dwLowVersion,
  624.     DWORD               dwHighVersion,
  625.     LPDWORD             lpdwTSPIVersion
  626.     );
  627.  
  628. LONG
  629. TSPIAPI
  630. TSPI_lineOpen(
  631.     DWORD               dwDeviceID,
  632.     HTAPILINE           htLine,
  633.     LPHDRVLINE          lphdLine,
  634.     DWORD               dwTSPIVersion,
  635.     LINEEVENT           lpfnEventProc
  636.     );
  637.  
  638. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  639. LONG
  640. TSPIAPI
  641. TSPI_linePark(
  642.     DRV_REQUESTID       dwRequestID,
  643.     HDRVCALL            hdCall,
  644.     DWORD               dwParkMode,
  645.     LPCWSTR             lpszDirAddress,
  646.     LPVARSTRING         lpNonDirAddress
  647.     );
  648. #else
  649. LONG
  650. TSPIAPI
  651. TSPI_linePark(
  652.     DRV_REQUESTID       dwRequestID,
  653.     HDRVCALL            hdCall,
  654.     DWORD               dwParkMode,
  655.     LPCSTR              lpszDirAddress,
  656.     LPVARSTRING         lpNonDirAddress
  657.     );
  658. #endif
  659.  
  660. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  661. LONG
  662. TSPIAPI
  663. TSPI_linePickup(
  664.     DRV_REQUESTID       dwRequestID,
  665.     HDRVLINE            hdLine,
  666.     DWORD               dwAddressID,
  667.     HTAPICALL           htCall,
  668.     LPHDRVCALL          lphdCall,
  669.     LPCWSTR             lpszDestAddress,
  670.     LPCWSTR             lpszGroupID
  671.     );
  672. #else
  673. LONG
  674. TSPIAPI
  675. TSPI_linePickup(
  676.     DRV_REQUESTID       dwRequestID,
  677.     HDRVLINE            hdLine,
  678.     DWORD               dwAddressID,
  679.     HTAPICALL           htCall,
  680.     LPHDRVCALL          lphdCall,
  681.     LPCSTR              lpszDestAddress,
  682.     LPCSTR              lpszGroupID
  683.     );
  684. #endif
  685.  
  686. LONG
  687. TSPIAPI
  688. TSPI_linePrepareAddToConference(
  689.     DRV_REQUESTID       dwRequestID,
  690.     HDRVCALL            hdConfCall,
  691.     HTAPICALL           htConsultCall,
  692.     LPHDRVCALL          lphdConsultCall,
  693.     LPLINECALLPARAMS    const lpCallParams
  694.     );
  695.  
  696. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  697. LONG
  698. TSPIAPI
  699. TSPI_lineRedirect(
  700.     DRV_REQUESTID       dwRequestID,
  701.     HDRVCALL            hdCall,
  702.     LPCWSTR             lpszDestAddress,
  703.     DWORD               dwCountryCode
  704.     );
  705. #else
  706. LONG
  707. TSPIAPI
  708. TSPI_lineRedirect(
  709.     DRV_REQUESTID       dwRequestID,
  710.     HDRVCALL            hdCall,
  711.     LPCSTR              lpszDestAddress,
  712.     DWORD               dwCountryCode
  713.     );
  714. #endif
  715.  
  716. LONG
  717. TSPIAPI
  718. TSPI_lineReleaseUserUserInfo(                                   // TSPI v1.4
  719.     DRV_REQUESTID       dwRequestID,
  720.     HDRVCALL            hdCall
  721.     );
  722.  
  723. LONG
  724. TSPIAPI
  725. TSPI_lineRemoveFromConference(
  726.     DRV_REQUESTID       dwRequestID,
  727.     HDRVCALL            hdCall
  728.     );
  729.  
  730. LONG
  731. TSPIAPI
  732. TSPI_lineSecureCall(
  733.     DRV_REQUESTID       dwRequestID,
  734.     HDRVCALL            hdCall
  735.     );
  736.  
  737. LONG
  738. TSPIAPI
  739. TSPI_lineSelectExtVersion(
  740.     HDRVLINE            hdLine,
  741.     DWORD               dwExtVersion
  742.     );
  743.  
  744. LONG
  745. TSPIAPI
  746. TSPI_lineSendUserUserInfo(
  747.     DRV_REQUESTID       dwRequestID,
  748.     HDRVCALL            hdCall,
  749.     LPCSTR              lpsUserUserInfo,
  750.     DWORD               dwSize
  751.     );
  752.  
  753. LONG
  754. TSPIAPI
  755. TSPI_lineSetAppSpecific(
  756.     HDRVCALL            hdCall,
  757.     DWORD               dwAppSpecific
  758.     );
  759.  
  760. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  761. LONG
  762. TSPIAPI
  763. TSPI_lineSetCallData(                                           // TSPI v2.0
  764.     DRV_REQUESTID       dwRequestID,
  765.     HDRVCALL            hdCall,
  766.     LPVOID              lpCallData,
  767.     DWORD               dwSize
  768.     );
  769. #endif
  770.  
  771. LONG
  772. TSPIAPI
  773. TSPI_lineSetCallParams(
  774.     DRV_REQUESTID       dwRequestID,
  775.     HDRVCALL            hdCall,
  776.     DWORD               dwBearerMode,
  777.     DWORD               dwMinRate,
  778.     DWORD               dwMaxRate,
  779.     LPLINEDIALPARAMS    const lpDialParams
  780.     );
  781.  
  782. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  783. LONG
  784. TSPIAPI
  785. TSPI_lineSetCallQualityOfService(                               // TSPI v2.0
  786.     DRV_REQUESTID       dwRequestID,
  787.     HDRVCALL            hdCall,
  788.     LPVOID              lpSendingFlowspec,
  789.     DWORD               dwSendingFlowspecSize,
  790.     LPVOID              lpReceivingFlowspec,
  791.     DWORD               dwReceivingFlowspecSize
  792.     );
  793.  
  794. LONG
  795. TSPIAPI
  796. TSPI_lineSetCallTreatment(                                      // TSPI v2.0
  797.     DRV_REQUESTID       dwRequestID,
  798.     HDRVCALL            hdCall,
  799.     DWORD               dwTreatment
  800.     );
  801. #endif
  802.  
  803. LONG
  804. TSPIAPI
  805. TSPI_lineSetCurrentLocation(                                    // TSPI v1.4
  806.     DWORD               dwLocation
  807.     );
  808.  
  809. LONG
  810. TSPIAPI
  811. TSPI_lineSetDefaultMediaDetection(
  812.     HDRVLINE            hdLine,
  813.     DWORD               dwMediaModes
  814.     );
  815.  
  816. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  817. LONG
  818. TSPIAPI
  819. TSPI_lineSetDevConfig(
  820.     DWORD               dwDeviceID,
  821.     LPVOID              const lpDeviceConfig,
  822.     DWORD               dwSize,
  823.     LPCWSTR             lpszDeviceClass
  824.     );
  825. #else
  826. LONG
  827. TSPIAPI
  828. TSPI_lineSetDevConfig(
  829.     DWORD               dwDeviceID,
  830.     LPVOID              const lpDeviceConfig,
  831.     DWORD               dwSize,
  832.     LPCSTR              lpszDeviceClass
  833.     );
  834. #endif
  835.  
  836. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  837. LONG
  838. TSPIAPI
  839. TSPI_lineSetLineDevStatus(                                      // TSPI v2.0
  840.     DRV_REQUESTID       dwRequestID,
  841.     HDRVLINE            hdLine,
  842.     DWORD               dwStatusToChange,
  843.     DWORD               fStatus
  844.     );
  845. #endif
  846.  
  847. LONG
  848. TSPIAPI
  849. TSPI_lineSetMediaControl(
  850.     HDRVLINE                    hdLine,
  851.     DWORD                       dwAddressID,
  852.     HDRVCALL                    hdCall,
  853.     DWORD                       dwSelect,
  854.     LPLINEMEDIACONTROLDIGIT     const lpDigitList,
  855.     DWORD                       dwDigitNumEntries,
  856.     LPLINEMEDIACONTROLMEDIA     const lpMediaList,
  857.     DWORD                       dwMediaNumEntries,
  858.     LPLINEMEDIACONTROLTONE      const lpToneList,
  859.     DWORD                       dwToneNumEntries,
  860.     LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
  861.     DWORD                       dwCallStateNumEntries
  862.     );
  863.  
  864. LONG
  865. TSPIAPI
  866. TSPI_lineSetMediaMode(
  867.     HDRVCALL            hdCall,
  868.     DWORD               dwMediaMode
  869.     );
  870.  
  871. LONG
  872. TSPIAPI
  873. TSPI_lineSetStatusMessages(
  874.     HDRVLINE            hdLine,
  875.     DWORD               dwLineStates,
  876.     DWORD               dwAddressStates
  877.     );
  878.  
  879. LONG
  880. TSPIAPI
  881. TSPI_lineSetTerminal(
  882.     DRV_REQUESTID       dwRequestID,
  883.     HDRVLINE            hdLine,
  884.     DWORD               dwAddressID,
  885.     HDRVCALL            hdCall,
  886.     DWORD               dwSelect,
  887.     DWORD               dwTerminalModes,
  888.     DWORD               dwTerminalID,
  889.     DWORD               bEnable
  890.     );
  891.  
  892. LONG
  893. TSPIAPI
  894. TSPI_lineSetupConference(
  895.     DRV_REQUESTID       dwRequestID,
  896.     HDRVCALL            hdCall,
  897.     HDRVLINE            hdLine,
  898.     HTAPICALL           htConfCall,
  899.     LPHDRVCALL          lphdConfCall,
  900.     HTAPICALL           htConsultCall,
  901.     LPHDRVCALL          lphdConsultCall,
  902.     DWORD               dwNumParties,
  903.     LPLINECALLPARAMS    const lpCallParams
  904.     );
  905.  
  906. LONG
  907. TSPIAPI
  908. TSPI_lineSetupTransfer(
  909.     DRV_REQUESTID       dwRequestID,
  910.     HDRVCALL            hdCall,
  911.     HTAPICALL           htConsultCall,
  912.     LPHDRVCALL          lphdConsultCall,
  913.     LPLINECALLPARAMS    const lpCallParams
  914.     );
  915.  
  916. LONG
  917. TSPIAPI
  918. TSPI_lineSwapHold(
  919.     DRV_REQUESTID       dwRequestID,
  920.     HDRVCALL            hdActiveCall,
  921.     HDRVCALL            hdHeldCall
  922.     );
  923.  
  924. LONG
  925. TSPIAPI
  926. TSPI_lineUncompleteCall(
  927.     DRV_REQUESTID       dwRequestID,
  928.     HDRVLINE            hdLine,
  929.     DWORD               dwCompletionID
  930.     );
  931.  
  932. LONG
  933. TSPIAPI
  934. TSPI_lineUnhold(
  935.     DRV_REQUESTID       dwRequestID,
  936.     HDRVCALL            hdCall
  937.     );
  938.  
  939. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  940. LONG
  941. TSPIAPI
  942. TSPI_lineUnpark(
  943.     DRV_REQUESTID       dwRequestID,
  944.     HDRVLINE            hdLine,
  945.     DWORD               dwAddressID,
  946.     HTAPICALL           htCall,
  947.     LPHDRVCALL          lphdCall,
  948.     LPCWSTR             lpszDestAddress
  949.     );
  950. #else
  951. LONG
  952. TSPIAPI
  953. TSPI_lineUnpark(
  954.     DRV_REQUESTID       dwRequestID,
  955.     HDRVLINE            hdLine,
  956.     DWORD               dwAddressID,
  957.     HTAPICALL           htCall,
  958.     LPHDRVCALL          lphdCall,
  959.     LPCSTR              lpszDestAddress
  960.     );
  961. #endif
  962.  
  963.  
  964.  
  965. LONG
  966. TSPIAPI
  967. TSPI_phoneClose(
  968.     HDRVPHONE           hdPhone
  969.     );
  970.  
  971. LONG
  972. TSPIAPI
  973. TSPI_phoneDevSpecific(
  974.     DRV_REQUESTID       dwRequestID,
  975.     HDRVPHONE           hdPhone,
  976.     LPVOID              lpParams,
  977.     DWORD               dwSize
  978.     );
  979.  
  980. LONG
  981. TSPIAPI
  982. TSPI_phoneGetButtonInfo(
  983.     HDRVPHONE           hdPhone,
  984.     DWORD               dwButtonLampID,
  985.     LPPHONEBUTTONINFO   lpButtonInfo
  986.     );
  987.  
  988. LONG
  989. TSPIAPI
  990. TSPI_phoneGetData(
  991.     HDRVPHONE           hdPhone,
  992.     DWORD               dwDataID,
  993.     LPVOID              lpData,
  994.     DWORD               dwSize
  995.     );
  996.  
  997. LONG
  998. TSPIAPI
  999. TSPI_phoneGetDevCaps(
  1000.     DWORD               dwDeviceID,
  1001.     DWORD               dwTSPIVersion,
  1002.     DWORD               dwExtVersion,
  1003.     LPPHONECAPS         lpPhoneCaps
  1004.     );
  1005.  
  1006. LONG
  1007. TSPIAPI
  1008. TSPI_phoneGetDisplay(
  1009.     HDRVPHONE           hdPhone,
  1010.     LPVARSTRING         lpDisplay
  1011.     );
  1012.  
  1013. LONG
  1014. TSPIAPI
  1015. TSPI_phoneGetExtensionID(
  1016.     DWORD               dwDeviceID,
  1017.     DWORD               dwTSPIVersion,
  1018.     LPPHONEEXTENSIONID  lpExtensionID
  1019.     );
  1020.  
  1021. LONG
  1022. TSPIAPI
  1023. TSPI_phoneGetGain(
  1024.     HDRVPHONE           hdPhone,
  1025.     DWORD               dwHookSwitchDev,
  1026.     LPDWORD             lpdwGain
  1027.     );
  1028.  
  1029. LONG
  1030. TSPIAPI
  1031. TSPI_phoneGetHookSwitch(
  1032.     HDRVPHONE           hdPhone,
  1033.     LPDWORD             lpdwHookSwitchDevs
  1034.     );
  1035.  
  1036. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1037. LONG
  1038. TSPIAPI
  1039. TSPI_phoneGetIcon(
  1040.     DWORD               dwDeviceID,
  1041.     LPCWSTR             lpszDeviceClass,
  1042.     LPHICON             lphIcon
  1043.     );
  1044. #else
  1045. LONG
  1046. TSPIAPI
  1047. TSPI_phoneGetIcon(
  1048.     DWORD               dwDeviceID,
  1049.     LPCSTR              lpszDeviceClass,
  1050.     LPHICON             lphIcon
  1051.     );
  1052. #endif
  1053.  
  1054. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1055. LONG
  1056. TSPIAPI
  1057. TSPI_phoneGetID(
  1058.     HDRVPHONE           hdPhone,
  1059.     LPVARSTRING         lpDeviceID,
  1060.     LPCWSTR             lpszDeviceClass,
  1061.     HANDLE              hTargetProcess                          // TSPI v2.0
  1062.     );
  1063. #else
  1064. LONG
  1065. TSPIAPI
  1066. TSPI_phoneGetID(
  1067.     HDRVPHONE           hdPhone,
  1068.     LPVARSTRING         lpDeviceID,
  1069.     LPCSTR              lpszDeviceClass
  1070.     );
  1071. #endif
  1072.  
  1073. LONG
  1074. TSPIAPI
  1075. TSPI_phoneGetLamp(
  1076.     HDRVPHONE           hdPhone,
  1077.     DWORD               dwButtonLampID,
  1078.     LPDWORD             lpdwLampMode
  1079.     );
  1080.  
  1081. LONG
  1082. TSPIAPI
  1083. TSPI_phoneGetRing(
  1084.     HDRVPHONE           hdPhone,
  1085.     LPDWORD             lpdwRingMode,
  1086.     LPDWORD             lpdwVolume
  1087.     );
  1088.  
  1089. LONG
  1090. TSPIAPI
  1091. TSPI_phoneGetStatus(
  1092.     HDRVPHONE           hdPhone,
  1093.     LPPHONESTATUS       lpPhoneStatus
  1094.     );
  1095.  
  1096. LONG
  1097. TSPIAPI
  1098. TSPI_phoneGetVolume(
  1099.     HDRVPHONE           hdPhone,
  1100.     DWORD               dwHookSwitchDev,
  1101.     LPDWORD             lpdwVolume
  1102.     );
  1103.  
  1104. LONG
  1105. TSPIAPI
  1106. TSPI_phoneNegotiateExtVersion(
  1107.     DWORD               dwDeviceID,
  1108.     DWORD               dwTSPIVersion,
  1109.     DWORD               dwLowVersion,
  1110.     DWORD               dwHighVersion,
  1111.     LPDWORD             lpdwExtVersion
  1112.     );
  1113.  
  1114. LONG
  1115. TSPIAPI
  1116. TSPI_phoneNegotiateTSPIVersion(
  1117.     DWORD               dwDeviceID,
  1118.     DWORD               dwLowVersion,
  1119.     DWORD               dwHighVersion,
  1120.     LPDWORD             lpdwTSPIVersion
  1121.     );
  1122.  
  1123. LONG
  1124. TSPIAPI
  1125. TSPI_phoneOpen(
  1126.     DWORD               dwDeviceID,
  1127.     HTAPIPHONE          htPhone,
  1128.     LPHDRVPHONE         lphdPhone,
  1129.     DWORD               dwTSPIVersion,
  1130.     PHONEEVENT          lpfnEventProc
  1131.     );
  1132.  
  1133. LONG
  1134. TSPIAPI
  1135. TSPI_phoneSelectExtVersion(
  1136.     HDRVPHONE           hdPhone,
  1137.     DWORD               dwExtVersion
  1138.     );
  1139.  
  1140. LONG
  1141. TSPIAPI
  1142. TSPI_phoneSetButtonInfo(
  1143.     DRV_REQUESTID       dwRequestID,
  1144.     HDRVPHONE           hdPhone,
  1145.     DWORD               dwButtonLampID,
  1146.     LPPHONEBUTTONINFO   const lpButtonInfo
  1147.     );
  1148.  
  1149. LONG
  1150. TSPIAPI
  1151. TSPI_phoneSetData(
  1152.     DRV_REQUESTID       dwRequestID,
  1153.     HDRVPHONE           hdPhone,
  1154.     DWORD               dwDataID,
  1155.     LPVOID              const lpData,
  1156.     DWORD               dwSize
  1157.     );
  1158.  
  1159. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1160. LONG
  1161. TSPIAPI
  1162. TSPI_phoneSetDisplay(
  1163.     DRV_REQUESTID       dwRequestID,
  1164.     HDRVPHONE           hdPhone,
  1165.     DWORD               dwRow,
  1166.     DWORD               dwColumn,
  1167.     LPCWSTR             lpsDisplay,
  1168.     DWORD               dwSize
  1169.     );
  1170. #else
  1171. LONG
  1172. TSPIAPI
  1173. TSPI_phoneSetDisplay(
  1174.     DRV_REQUESTID       dwRequestID,
  1175.     HDRVPHONE           hdPhone,
  1176.     DWORD               dwRow,
  1177.     DWORD               dwColumn,
  1178.     LPCSTR              lpsDisplay,
  1179.     DWORD               dwSize
  1180.     );
  1181. #endif
  1182.  
  1183. LONG
  1184. TSPIAPI
  1185. TSPI_phoneSetGain(
  1186.     DRV_REQUESTID       dwRequestID,
  1187.     HDRVPHONE           hdPhone,
  1188.     DWORD               dwHookSwitchDev,
  1189.     DWORD               dwGain
  1190.     );
  1191.  
  1192. LONG
  1193. TSPIAPI
  1194. TSPI_phoneSetHookSwitch(
  1195.     DRV_REQUESTID       dwRequestID,
  1196.     HDRVPHONE           hdPhone,
  1197.     DWORD               dwHookSwitchDevs,
  1198.     DWORD               dwHookSwitchMode
  1199.     );
  1200.  
  1201. LONG
  1202. TSPIAPI
  1203. TSPI_phoneSetLamp(
  1204.     DRV_REQUESTID       dwRequestID,
  1205.     HDRVPHONE           hdPhone,
  1206.     DWORD               dwButtonLampID,
  1207.     DWORD               dwLampMode
  1208.     );
  1209.  
  1210. LONG
  1211. TSPIAPI
  1212. TSPI_phoneSetRing(
  1213.     DRV_REQUESTID       dwRequestID,
  1214.     HDRVPHONE           hdPhone,
  1215.     DWORD               dwRingMode,
  1216.     DWORD               dwVolume
  1217.     );
  1218.  
  1219. LONG
  1220. TSPIAPI
  1221. TSPI_phoneSetStatusMessages(
  1222.     HDRVPHONE           hdPhone,
  1223.     DWORD               dwPhoneStates,
  1224.     DWORD               dwButtonModes,
  1225.     DWORD               dwButtonStates
  1226.     );
  1227.  
  1228. LONG
  1229. TSPIAPI
  1230. TSPI_phoneSetVolume(
  1231.     DRV_REQUESTID       dwRequestID,
  1232.     HDRVPHONE           hdPhone,
  1233.     DWORD               dwHookSwitchDev,
  1234.     DWORD               dwVolume
  1235.     );
  1236.  
  1237.  
  1238.  
  1239. LONG
  1240. TSPIAPI
  1241. TSPI_providerCreateLineDevice(                                  // TSPI v1.4
  1242.     DWORD               dwTempID,
  1243.     DWORD               dwDeviceID
  1244.     );
  1245.  
  1246. LONG
  1247. TSPIAPI
  1248. TSPI_providerCreatePhoneDevice(                                 // TSPI v1.4
  1249.     DWORD               dwTempID,
  1250.     DWORD               dwDeviceID
  1251.     );
  1252.  
  1253. LONG
  1254. TSPIAPI
  1255. TSPI_providerEnumDevices(                                       // TSPI v1.4
  1256.     DWORD               dwPermanentProviderID,
  1257.     LPDWORD             lpdwNumLines,
  1258.     LPDWORD             lpdwNumPhones,
  1259.     HPROVIDER           hProvider,
  1260.     LINEEVENT           lpfnLineCreateProc,
  1261.     PHONEEVENT          lpfnPhoneCreateProc
  1262.     );
  1263.  
  1264. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1265. LONG
  1266. TSPIAPI
  1267. TSPI_providerFreeDialogInstance(                                // TSPI v2.0
  1268.     HDRVDIALOGINSTANCE  hdDlgInst
  1269.     );
  1270.  
  1271. LONG
  1272. TSPIAPI
  1273. TSPI_providerGenericDialogData(                                 // TSPI v2.0
  1274.     DWORD               dwObjectID,
  1275.     DWORD               dwObjectType,
  1276.     LPVOID              lpParams,
  1277.     DWORD               dwSize
  1278.     );
  1279. #endif
  1280.  
  1281. LONG
  1282. TSPIAPI
  1283. TSPI_providerInit(
  1284.     DWORD               dwTSPIVersion,
  1285.     DWORD               dwPermanentProviderID,
  1286.     DWORD               dwLineDeviceIDBase,
  1287.     DWORD               dwPhoneDeviceIDBase,
  1288.     DWORD               dwNumLines,
  1289.     DWORD               dwNumPhones,
  1290.     ASYNC_COMPLETION    lpfnCompletionProc
  1291. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1292.     ,
  1293.     LPDWORD             lpdwTSPIOptions                         // TSPI v2.0
  1294. #endif
  1295.     );
  1296.  
  1297. LONG
  1298. TSPIAPI
  1299. TSPI_providerInstall(
  1300.     HWND                hwndOwner,
  1301.     DWORD               dwPermanentProviderID
  1302.     );
  1303.  
  1304. LONG
  1305. TSPIAPI
  1306. TSPI_providerRemove(
  1307.     HWND                hwndOwner,
  1308.     DWORD               dwPermanentProviderID
  1309.     );
  1310.  
  1311. LONG
  1312. TSPIAPI
  1313. TSPI_providerShutdown(
  1314.     DWORD               dwTSPIVersion
  1315. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1316.     ,
  1317.     DWORD               dwPermanentProviderID                   // TSPI v2.0
  1318. #endif
  1319.     );
  1320.  
  1321. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1322. LONG
  1323. TSPIAPI
  1324. TSPI_providerUIIdentify(                                        // TSPI v2.0
  1325.     LPWSTR              lpszUIDLLName
  1326.     );
  1327. #endif
  1328.  
  1329.  
  1330.  
  1331. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1332. //
  1333. // The following function prototypes pertain
  1334. // to a service provider's UI module
  1335. //
  1336.  
  1337. LONG
  1338. TSPIAPI
  1339. TUISPI_lineConfigDialog(                                        // TSPI v2.0
  1340.     TUISPIDLLCALLBACK   lpfnUIDLLCallback,
  1341.     DWORD               dwDeviceID,
  1342.     HWND                hwndOwner,
  1343.     LPCWSTR             lpszDeviceClass
  1344.     );
  1345.  
  1346. LONG
  1347. TSPIAPI
  1348. TUISPI_lineConfigDialogEdit(                                    // TSPI v2.0
  1349.     TUISPIDLLCALLBACK   lpfnUIDLLCallback,
  1350.     DWORD               dwDeviceID,
  1351.     HWND                hwndOwner,
  1352.     LPCWSTR             lpszDeviceClass,
  1353.     LPVOID              const lpDeviceConfigIn,
  1354.     DWORD               dwSize,
  1355.     LPVARSTRING         lpDeviceConfigOut
  1356.     );
  1357.  
  1358. LONG
  1359. TSPIAPI
  1360. TUISPI_phoneConfigDialog(                                       // TSPI v2.0
  1361.     TUISPIDLLCALLBACK   lpfnUIDLLCallback,
  1362.     DWORD               dwDeviceID,
  1363.     HWND                hwndOwner,
  1364.     LPCWSTR             lpszDeviceClass
  1365.     );
  1366.  
  1367. LONG
  1368. TSPIAPI
  1369. TUISPI_providerConfig(                                          // TSPI v2.0
  1370.     TUISPIDLLCALLBACK   lpfnUIDLLCallback,
  1371.     HWND                hwndOwner,
  1372.     DWORD               dwPermanentProviderID
  1373.     );
  1374.  
  1375. LONG
  1376. TSPIAPI
  1377. TUISPI_providerGenericDialog(                                   // TSPI v2.0
  1378.     TUISPIDLLCALLBACK   lpfnUIDLLCallback,
  1379.     HTAPIDIALOGINSTANCE htDlgInst,
  1380.     LPVOID              lpParams,
  1381.     DWORD               dwSize,
  1382.     HANDLE              hEvent
  1383.     );
  1384.  
  1385. LONG
  1386. TSPIAPI
  1387. TUISPI_providerGenericDialogData(                               // TSPI v2.0
  1388.     HTAPIDIALOGINSTANCE htDlgInst,
  1389.     LPVOID              lpParams,
  1390.     DWORD               dwSize
  1391.     );
  1392.  
  1393. LONG
  1394. TSPIAPI
  1395. TUISPI_providerInstall(                                         // TSPI v2.0
  1396.     TUISPIDLLCALLBACK   lpfnUIDLLCallback,
  1397.     HWND                hwndOwner,
  1398.     DWORD               dwPermanentProviderID
  1399.     );
  1400.  
  1401. LONG
  1402. TSPIAPI
  1403. TUISPI_providerRemove(                                          // TSPI v2.0
  1404.     TUISPIDLLCALLBACK   lpfnUIDLLCallback,
  1405.     HWND                hwndOwner,
  1406.     DWORD               dwPermanentProviderID
  1407.     );
  1408.  
  1409. #else
  1410.  
  1411. //
  1412. // The following were obsoleted by the above (but are needed to build 1.4 SPs)
  1413. //
  1414. LONG TSPIAPI TSPI_lineConfigDialog(
  1415.     DWORD   dwDeviceID,
  1416.     HWND    hwndOwner,
  1417.     LPCSTR  lpszDeviceClass);
  1418.  
  1419. LONG TSPIAPI TSPI_lineConfigDialogEdit(
  1420.     DWORD   dwDeviceID,
  1421.     HWND    hwndOwner,
  1422.     LPCSTR  lpszDeviceClass,
  1423.     LPVOID  const lpDeviceConfigIn,
  1424.     DWORD   dwSize,
  1425.     LPVARSTRING lpDeviceConfigOut);
  1426.  
  1427. LONG TSPIAPI TSPI_phoneConfigDialog(
  1428.     DWORD   dwDeviceID,
  1429.     HWND    hwndOwner,
  1430.     LPCSTR  lpszDeviceClass);
  1431.  
  1432. LONG TSPIAPI TSPI_providerConfig(
  1433.     HWND   hwndOwner,
  1434.     DWORD  dwPermanentProviderID);
  1435.  
  1436.  
  1437. #endif
  1438.  
  1439.  
  1440.  
  1441.  
  1442. #if (TAPI_CURRENT_VERSION < 0x00020000)
  1443.  
  1444. //
  1445. // The following macros are the ordinal numbers of the exported tspi functions
  1446. //
  1447.  
  1448. #define TSPI_PROC_BASE                      500
  1449.  
  1450. #define TSPI_LINEACCEPT                     (TSPI_PROC_BASE + 0)
  1451. #define TSPI_LINEADDTOCONFERENCE            (TSPI_PROC_BASE + 1)
  1452. #define TSPI_LINEANSWER                     (TSPI_PROC_BASE + 2)
  1453. #define TSPI_LINEBLINDTRANSFER              (TSPI_PROC_BASE + 3)
  1454. #define TSPI_LINECLOSE                      (TSPI_PROC_BASE + 4)
  1455. #define TSPI_LINECLOSECALL                  (TSPI_PROC_BASE + 5)
  1456. #define TSPI_LINECOMPLETECALL               (TSPI_PROC_BASE + 6)
  1457. #define TSPI_LINECOMPLETETRANSFER           (TSPI_PROC_BASE + 7)
  1458. #define TSPI_LINECONDITIONALMEDIADETECTION  (TSPI_PROC_BASE + 8)
  1459. #define TSPI_LINECONFIGDIALOG               (TSPI_PROC_BASE + 9)
  1460. #define TSPI_LINEDEVSPECIFIC                (TSPI_PROC_BASE + 10)
  1461. #define TSPI_LINEDEVSPECIFICFEATURE         (TSPI_PROC_BASE + 11)
  1462. #define TSPI_LINEDIAL                       (TSPI_PROC_BASE + 12)
  1463. #define TSPI_LINEDROP                       (TSPI_PROC_BASE + 13)
  1464. #define TSPI_LINEFORWARD                    (TSPI_PROC_BASE + 14)
  1465. #define TSPI_LINEGATHERDIGITS               (TSPI_PROC_BASE + 15)
  1466. #define TSPI_LINEGENERATEDIGITS             (TSPI_PROC_BASE + 16)
  1467. #define TSPI_LINEGENERATETONE               (TSPI_PROC_BASE + 17)
  1468. #define TSPI_LINEGETADDRESSCAPS             (TSPI_PROC_BASE + 18)
  1469. #define TSPI_LINEGETADDRESSID               (TSPI_PROC_BASE + 19)
  1470. #define TSPI_LINEGETADDRESSSTATUS           (TSPI_PROC_BASE + 20)
  1471. #define TSPI_LINEGETCALLADDRESSID           (TSPI_PROC_BASE + 21)
  1472. #define TSPI_LINEGETCALLINFO                (TSPI_PROC_BASE + 22)
  1473. #define TSPI_LINEGETCALLSTATUS              (TSPI_PROC_BASE + 23)
  1474. #define TSPI_LINEGETDEVCAPS                 (TSPI_PROC_BASE + 24)
  1475. #define TSPI_LINEGETDEVCONFIG               (TSPI_PROC_BASE + 25)
  1476. #define TSPI_LINEGETEXTENSIONID             (TSPI_PROC_BASE + 26)
  1477. #define TSPI_LINEGETICON                    (TSPI_PROC_BASE + 27)
  1478. #define TSPI_LINEGETID                      (TSPI_PROC_BASE + 28)
  1479. #define TSPI_LINEGETLINEDEVSTATUS           (TSPI_PROC_BASE + 29)
  1480. #define TSPI_LINEGETNUMADDRESSIDS           (TSPI_PROC_BASE + 30)
  1481. #define TSPI_LINEHOLD                       (TSPI_PROC_BASE + 31)
  1482. #define TSPI_LINEMAKECALL                   (TSPI_PROC_BASE + 32)
  1483. #define TSPI_LINEMONITORDIGITS              (TSPI_PROC_BASE + 33)
  1484. #define TSPI_LINEMONITORMEDIA               (TSPI_PROC_BASE + 34)
  1485. #define TSPI_LINEMONITORTONES               (TSPI_PROC_BASE + 35)
  1486. #define TSPI_LINENEGOTIATEEXTVERSION        (TSPI_PROC_BASE + 36)
  1487. #define TSPI_LINENEGOTIATETSPIVERSION       (TSPI_PROC_BASE + 37)
  1488. #define TSPI_LINEOPEN                       (TSPI_PROC_BASE + 38)
  1489. #define TSPI_LINEPARK                       (TSPI_PROC_BASE + 39)
  1490. #define TSPI_LINEPICKUP                     (TSPI_PROC_BASE + 40)
  1491. #define TSPI_LINEPREPAREADDTOCONFERENCE     (TSPI_PROC_BASE + 41)
  1492. #define TSPI_LINEREDIRECT                   (TSPI_PROC_BASE + 42)
  1493. #define TSPI_LINEREMOVEFROMCONFERENCE       (TSPI_PROC_BASE + 43)
  1494. #define TSPI_LINESECURECALL                 (TSPI_PROC_BASE + 44)
  1495. #define TSPI_LINESELECTEXTVERSION           (TSPI_PROC_BASE + 45)
  1496. #define TSPI_LINESENDUSERUSERINFO           (TSPI_PROC_BASE + 46)
  1497. #define TSPI_LINESETAPPSPECIFIC             (TSPI_PROC_BASE + 47)
  1498. #define TSPI_LINESETCALLPARAMS              (TSPI_PROC_BASE + 48)
  1499. #define TSPI_LINESETDEFAULTMEDIADETECTION   (TSPI_PROC_BASE + 49)
  1500. #define TSPI_LINESETDEVCONFIG               (TSPI_PROC_BASE + 50)
  1501. #define TSPI_LINESETMEDIACONTROL            (TSPI_PROC_BASE + 51)
  1502. #define TSPI_LINESETMEDIAMODE               (TSPI_PROC_BASE + 52)
  1503. #define TSPI_LINESETSTATUSMESSAGES          (TSPI_PROC_BASE + 53)
  1504. #define TSPI_LINESETTERMINAL                (TSPI_PROC_BASE + 54)
  1505. #define TSPI_LINESETUPCONFERENCE            (TSPI_PROC_BASE + 55)
  1506. #define TSPI_LINESETUPTRANSFER              (TSPI_PROC_BASE + 56)
  1507. #define TSPI_LINESWAPHOLD                   (TSPI_PROC_BASE + 57)
  1508. #define TSPI_LINEUNCOMPLETECALL             (TSPI_PROC_BASE + 58)
  1509. #define TSPI_LINEUNHOLD                     (TSPI_PROC_BASE + 59)
  1510. #define TSPI_LINEUNPARK                     (TSPI_PROC_BASE + 60)
  1511. #define TSPI_PHONECLOSE                     (TSPI_PROC_BASE + 61)
  1512. #define TSPI_PHONECONFIGDIALOG              (TSPI_PROC_BASE + 62)
  1513. #define TSPI_PHONEDEVSPECIFIC               (TSPI_PROC_BASE + 63)
  1514. #define TSPI_PHONEGETBUTTONINFO             (TSPI_PROC_BASE + 64)
  1515. #define TSPI_PHONEGETDATA                   (TSPI_PROC_BASE + 65)
  1516. #define TSPI_PHONEGETDEVCAPS                (TSPI_PROC_BASE + 66)
  1517. #define TSPI_PHONEGETDISPLAY                (TSPI_PROC_BASE + 67)
  1518. #define TSPI_PHONEGETEXTENSIONID            (TSPI_PROC_BASE + 68)
  1519. #define TSPI_PHONEGETGAIN                   (TSPI_PROC_BASE + 69)
  1520. #define TSPI_PHONEGETHOOKSWITCH             (TSPI_PROC_BASE + 70)
  1521. #define TSPI_PHONEGETICON                   (TSPI_PROC_BASE + 71)
  1522. #define TSPI_PHONEGETID                     (TSPI_PROC_BASE + 72)
  1523. #define TSPI_PHONEGETLAMP                   (TSPI_PROC_BASE + 73)
  1524. #define TSPI_PHONEGETRING                   (TSPI_PROC_BASE + 74)
  1525. #define TSPI_PHONEGETSTATUS                 (TSPI_PROC_BASE + 75)
  1526. #define TSPI_PHONEGETVOLUME                 (TSPI_PROC_BASE + 76)
  1527. #define TSPI_PHONENEGOTIATEEXTVERSION       (TSPI_PROC_BASE + 77)
  1528. #define TSPI_PHONENEGOTIATETSPIVERSION      (TSPI_PROC_BASE + 78)
  1529. #define TSPI_PHONEOPEN                      (TSPI_PROC_BASE + 79)
  1530. #define TSPI_PHONESELECTEXTVERSION          (TSPI_PROC_BASE + 80)
  1531. #define TSPI_PHONESETBUTTONINFO             (TSPI_PROC_BASE + 81)
  1532. #define TSPI_PHONESETDATA                   (TSPI_PROC_BASE + 82)
  1533. #define TSPI_PHONESETDISPLAY                (TSPI_PROC_BASE + 83)
  1534. #define TSPI_PHONESETGAIN                   (TSPI_PROC_BASE + 84)
  1535. #define TSPI_PHONESETHOOKSWITCH             (TSPI_PROC_BASE + 85)
  1536. #define TSPI_PHONESETLAMP                   (TSPI_PROC_BASE + 86)
  1537. #define TSPI_PHONESETRING                   (TSPI_PROC_BASE + 87)
  1538. #define TSPI_PHONESETSTATUSMESSAGES         (TSPI_PROC_BASE + 88)
  1539. #define TSPI_PHONESETVOLUME                 (TSPI_PROC_BASE + 89)
  1540. #define TSPI_PROVIDERCONFIG                 (TSPI_PROC_BASE + 90)
  1541. #define TSPI_PROVIDERINIT                   (TSPI_PROC_BASE + 91)
  1542. #define TSPI_PROVIDERINSTALL                (TSPI_PROC_BASE + 92)
  1543. #define TSPI_PROVIDERREMOVE                 (TSPI_PROC_BASE + 93)
  1544. #define TSPI_PROVIDERSHUTDOWN               (TSPI_PROC_BASE + 94)
  1545.  
  1546. #define TSPI_PROVIDERENUMDEVICES            (TSPI_PROC_BASE + 95)  // TSPI v1.4
  1547. #define TSPI_LINEDROPONCLOSE                (TSPI_PROC_BASE + 96)  // TSPI v1.4
  1548. #define TSPI_LINEDROPNOOWNER                (TSPI_PROC_BASE + 97)  // TSPI v1.4
  1549. #define TSPI_PROVIDERCREATELINEDEVICE       (TSPI_PROC_BASE + 98)  // TSPI v1.4
  1550. #define TSPI_PROVIDERCREATEPHONEDEVICE      (TSPI_PROC_BASE + 99)  // TSPI v1.4
  1551. #define TSPI_LINESETCURRENTLOCATION         (TSPI_PROC_BASE + 100) // TSPI v1.4
  1552. #define TSPI_LINECONFIGDIALOGEDIT           (TSPI_PROC_BASE + 101) // TSPI v1.4
  1553. #define TSPI_LINERELEASEUSERUSERINFO        (TSPI_PROC_BASE + 102) // TSPI v1.4
  1554.  
  1555. #endif
  1556.  
  1557.  
  1558. #ifdef __cplusplus
  1559. }                       /* End of extern "C" { */
  1560. #endif  /* __cplusplus */
  1561.  
  1562. #ifdef __BORLANDC__
  1563. #  include <poppack.h>
  1564. #endif
  1565.  
  1566. #pragma option pop
  1567. #endif  // TSPI_H
  1568.